home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.cs.arizona.edu
/
ftp.cs.arizona.edu.tar
/
ftp.cs.arizona.edu
/
icon
/
newsgrp
/
group02b.txt
/
000150_icon-group-sender_Fri Dec 6 16:53:09 2002.msg
< prev
next >
Wrap
Internet Message Format
|
2003-01-02
|
2KB
Return-Path: <icon-group-sender>
Received: (from root@localhost)
by baskerville.CS.Arizona.EDU (8.11.1/8.11.1) id gB6NpLE09375
for icon-group-addresses; Fri, 6 Dec 2002 16:51:21 -0700 (MST)
Message-Id: <200212062351.gB6NpLE09375@baskerville.CS.Arizona.EDU>
From: "Frank J. Lhota" <NOSPAM.lhota.adarose@verizon.net>
X-Newsgroups: comp.lang.icon
Subject: Re: Icon compiler
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2800.1106
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1106
Date: Fri, 06 Dec 2002 19:25:37 GMT
X-Complaints-To: abuse@verizon.net
To: icon-group@cs.arizona.edu
Errors-To: icon-group-errors@cs.arizona.edu
Status: RO
The Icon native code compiler is still distributed, but no longer supported.
I experimented with making the Icon-to-C compiler work in my recent Cygwin
port, and I discovered that the code needed a lot of tweaking.
The Icon-to-C (iconc) compiler can produce very fast programs. I recall once
using it on the Icon versions of uuencode / uudecode ("iiencode.icn" and
"iidecode.icn" in the IPL) and ran some timing checks. The iconc versions of
iiencode / iidecode were over 3 times as fast as the interpreted (icont /
iconx) versions. More surprisingly, I found that the iconc programs were
actually faster than native C uuencode / uudecode programs that I was using
at the time!
The down side is that the iconc compiler itself is sluggish and a real
memory hog. Because of the type inference engine, iconc cannot perform
separate compilation. My experience is that iconc is bound to fail for
programs beyond a certain size. Also, for iconc debug support is optional,
and a performance drag. I would not recommend compiling a program with iconc
until it has been thoroughly tested and debugged.
Also, some more recent features such as multi-threading is simply not
supported (and not really supportable) by iconc.
The iconc compiler has to interface with the local C compiler, which creates
a real maintenance headache. It is therefore not surprising that the Icon
Project decided to drop support for iconc.